home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / extras / programm / gemfsc20 / gemfsc20.lzh / GEMFUNCS / GEMFINTL.H < prev    next >
C/C++ Source or Header  |  1993-03-20  |  5KB  |  125 lines

  1. /**************************************************************************
  2.  * GEMFINTL.H - Stuff internal to the GemFast implementation.
  3.  *************************************************************************/
  4.  
  5. #ifndef GEMFINTL_H
  6. #define GEMFINTL_H
  7.  
  8. #include "gemfast.h"
  9.  
  10. #include <string.h>
  11. #include <stdio.h>
  12.  
  13. /*----------------------------------------------------------------------------
  14.  * some macros used to declare static functions in library internals...
  15.  *--------------------------------------------------------------------------*/
  16.  
  17. #define INTERNAL_VFUNC    static void GNEAR GREGARGS
  18. #define INTERNAL_IFUNC    static int    GNEAR GREGARGS
  19.  
  20. /*----------------------------------------------------------------------------
  21.  * mundane macros...
  22.  *--------------------------------------------------------------------------*/
  23.  
  24. #ifndef NULL
  25.   #define NULL ((void *)0)
  26. #endif
  27.  
  28. #ifndef TRUE
  29.   #define TRUE    1
  30.   #define FALSE 0
  31. #endif
  32.  
  33. /*----------------------------------------------------------------------------
  34.  * handy function-like macros...
  35.  *--------------------------------------------------------------------------*/
  36.  
  37. #define Array_els(a) ( sizeof(a) / sizeof((a)[0]) )
  38.  
  39. /*-------------------------------------------------------------------------
  40.  * All dynamic dialogs get these options...
  41.  *-----------------------------------------------------------------------*/
  42.  
  43. #define FRM_DEFAULT_DYNOPT      (FRM_USEBLIT | FRM_MOVEABLE | FRM_MOUSEARROW)
  44. #define FRM_MANDATORY_DYNOPT  (FRM_CENTER  | FRM_DCOMPLETE)
  45.  
  46. /*-------------------------------------------------------------------------
  47.  * FormControl structure used by frm_dialog internals...
  48.  *-----------------------------------------------------------------------*/
  49.  
  50. typedef struct form_control {
  51.     OBJECT    *ptree;
  52.     void    *blitbuffer;
  53.     short    (*form_do) __PROTO((struct form_control *ctl));
  54.     long    options;
  55.     short    editobj;
  56.     short    parentobj;
  57.     short    moverobj;
  58.     short    defaultobj;
  59.     short    specialobj;
  60.     short    select_state;
  61.     short    treeflags;
  62.     GRECT    littlerect;
  63.     GRECT    scrnrect;
  64.     GRECT    *pboundrect;
  65. } FormControl;
  66.  
  67. /*-------------------------------------------------------------------------
  68.  * protos...
  69.  *-----------------------------------------------------------------------*/
  70.  
  71. extern long             _FrmDefaults;
  72.  
  73. extern void          (*_AesVCleanup) __PROTO((void));
  74.  
  75. extern void *         apl_malloc __PROTO((unsigned long amount));
  76. extern void          apl_free __PROTO((void *block));
  77. extern void          _ApXinit __PROTO((void));
  78.  
  79. extern FormControl * _FrmSetup __PROTO((FormControl *ctl, long options, OBJECT *ptree, GRECT *pboundrect));
  80.  
  81. extern void          frm_cleanup __PROTO((FormControl *ctl));
  82. extern FormControl * frm_init __PROTO((long options, OBJECT *ptree, GRECT *pboundrect));
  83. extern void          frm_start __PROTO((FormControl *ctl));
  84. extern void          frm_draw __PROTO((FormControl *ctl, short obj));
  85. extern void          frm_finish __PROTO((FormControl *ctl));
  86. extern void          frm_move __PROTO((FormControl *ctl));
  87. extern short         frm_do __PROTO((FormControl *ctl, short editobj));
  88. extern short         frm_mdo __PROTO((FormControl *ctl));
  89. extern void *         frm_dovector __PROTO((void *newfunc));
  90. extern char *         _FrmVFormat __PROTO((char *fmt, va_list args, short *plen));
  91. extern void          _FrmVFree __PROTO((char *buffer));
  92.  
  93. extern void          _FrmTrWidths __PROTO((OBJECT *tree, short parent, short width));
  94. extern short         _FrmDS2Obj __PROTO((char **ppstr, OBJECT *pobj, TEDINFO *pted, short *pwidth, short maxobjs));
  95. extern void          _FrmNLPatch __PROTO((char **patch_array));
  96. extern void          _FrmNL2DS __PROTO((char *strings, char **ptr_array, char **patch_array, short maxstrings));
  97.  
  98. extern short         obj__draw __PROTO((OBJECT *tree, short obj, short depth, GRECT *cliprect));
  99.  
  100. /*----------------------------------------------------------------------------
  101.  * Define mnemonics for internal error codes.
  102.  *    Note that we set the base to the bottom of our staked-out range, and
  103.  *    let the enum increment upwards from there.    Our staked-out range is
  104.  *    currently -15199 thru -15100.
  105.  *--------------------------------------------------------------------------*/
  106.  
  107. #define GEMFAST_ERRNO_BASE (-15199)
  108.  
  109. enum {
  110.     gfErr_no_memory             = GEMFAST_ERRNO_BASE,
  111.     gfErr_vdi_handle,
  112.     gfErr_parameter_range,
  113.     gfErr_parameter_null,
  114.     gfErr_resource_in_use,
  115.     gfErr_wrong_type,
  116.     gfErr_option_invalid,
  117.     gfErr_action_invalid,
  118.     gfErr_object_too_small,
  119.     gfErr_object_too_big,
  120.     gfSuccess = 0
  121. };
  122.  
  123. #endif /* GEMFINTL_H */
  124.  
  125.